﻿#pragma once


// platform
#ifdef _WIN32
#include <Windows.h>
#else
#include <dlfcn.h>
#endif

#include <glad/glad.h>

// lib
#define GLM_FORCE_RADIANS           // 强制使用弧度
#define GLM_FORCE_DEPTH_ZERO_TO_ONE // 深度值范围从0到1
#define GLM_ENABLE_EXPERIMENTAL
#include <glm/glm.hpp>
#include <glm/gtc/integer.hpp>
#include <glm/gtx/transform.hpp>
#include <GLFW/glfw3.h>

// std
#include <cstdint>
#include <algorithm>
#include <array>
#include <cassert>
#include <chrono>
#include <filesystem>
#include <fstream>
#include <iostream>
#include <iterator>
#include <map>
#include <memory>
#include <optional>
#include <random>
#include <set>
#include <sstream>
#include <string>
#include <tuple>
#include <unordered_map>
#include <utility>
#include <vector>
#include <ranges>
#include <sstream>
#include <limits>

#include <imgui.h>
#include <imgui_impl_glfw.h>
#include <imgui_impl_opengl3.h>

#ifdef BUILD_DLL
#define CORE_API __declspec(dllimport)
#else
#define CORE_API __declspec(dllexport)
#endif

#include "Core/Memory.h"
#include "Core/Logger.h"
